home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / mg / src.lzh / amiga / ttydef.h < prev    next >
C/C++ Source or Header  |  1990-05-23  |  3KB  |  137 lines

  1. /*
  2.  * Name:    MicroEMACS Amiga console device virtual terminal header file
  3.  * Version:    MG 2a Last edit:    28-Nov-87
  4.  * ...!seismo!ut-sally!ut-ngp!mic (mic@emx.cc.utexas.edu) Created:
  5.  * 20-Apr-86 ...!seismo!ut-sally!ut-ngp!mic
  6.  */
  7.  
  8. #define    TOP_OFFSET    11    /* # raster lines from top of window */
  9.  
  10. #ifndef LR_BORDER
  11. #define    LR_BORDER (3 + 20)    /* Vertical border size (pixels)  */
  12. #endif
  13.  
  14. #ifndef TB_BORDER
  15. #define    TB_BORDER (TOP_OFFSET + 2)    /* Horizontal border size (pixels) */
  16. #endif
  17.  
  18. /*
  19.  * Function key codes (using 16-bit KEY values)
  20.  */
  21. #define    KFIRST    0x100
  22.  
  23. #define    KUP    0x100
  24. #define    KDOWN    0x101
  25. #define KLEFT    0x102
  26. #define    KRIGHT    0x103
  27.  
  28. #define    KSUP    0x104
  29. #define    KSDOWN    0x105
  30. #define    KSLEFT    0x106
  31. #define    KSRIGHT    0x107
  32.  
  33. #define    KF1    0x108
  34. #define    KF2    0x109
  35. #define KF3    0x10A
  36. #define    KF4    0x10B
  37. #define KF5    0x10C
  38. #define KF6    0x10D
  39. #define KF7    0x10E
  40. #define KF8    0x10F
  41. #define KF9    0x110
  42. #define KF10    0x111
  43.  
  44. #define    KSF1    0x112
  45. #define    KSF2    0x113
  46. #define KSF3    0x114
  47. #define    KSF4    0x115
  48. #define KSF5    0x116
  49. #define KSF6    0x117
  50. #define KSF7    0x118
  51. #define KSF8    0x119
  52. #define KSF9    0x11A
  53. #define KSF10    0x11B
  54.  
  55. #define    KHELP    0x11C
  56. #define    KMENU    0x11D
  57. #define    KRESIZE    0x11E
  58.  
  59. #define    KW___MOUSE    0x120
  60. #define    KW__CMOUSE    0x121
  61. #define    KW_S_MOUSE    0x122
  62. #define    KW_SCMOUSE    0x123
  63. #define    KWA__MOUSE    0x124
  64. #define    KWA_CMOUSE    0x125
  65. #define    KWAS_MOUSE    0x126
  66. #define    KWASCMOUSE    0x127
  67. #define    KM___MOUSE    0x128
  68. #define    KM__CMOUSE    0x129
  69. #define    KM_S_MOUSE    0x12A
  70. #define    KM_SCMOUSE    0x12B
  71. #define    KMA__MOUSE    0x12C
  72. #define    KMA_CMOUSE    0x12D
  73. #define    KMAS_MOUSE    0x12E
  74. #define    KMASCMOUSE    0x12F
  75. #define    KE___MOUSE    0x130
  76. #define    KE__CMOUSE    0x131
  77. #define    KE_S_MOUSE    0x132
  78. #define    KE_SCMOUSE    0x133
  79. #define    KEA__MOUSE    0x134
  80. #define    KEA_CMOUSE    0x135
  81. #define    KEAS_MOUSE    0x136
  82. #define    KEASCMOUSE    0x137
  83.  
  84. #define    KLAST    KEASCMOUSE
  85.  
  86. /*
  87.  * Mouse key encoding stuff...  The bit fields are:
  88.  * 
  89.  *    4 3       2       1     0
  90.  * |    where    | ALT | SHIFT | CTRL
  91.  * 
  92.  * Where ALT, SHIFT, and CTRL indicate qualifiers, and the 2-bit where field
  93.  * indicates whether the click was (initially) in a window, a mode line, or
  94.  * the echo line.  The mouse functions are smart enough to remap themselves
  95.  * if necessary; we implement these as keys so users can rebind things to
  96.  * their taste.
  97.  */
  98. #define    M_X_ZERO    ' '
  99. #define    M_Y_ZERO    ' '
  100. #define    MQ_OFFSET    0x40
  101. #define    MQ_NOQUAL    0x00
  102. #define    MQ_CTRL        0x01
  103. #define    MQ_SHIFT    0x02
  104. #define    MQ_ALT        0x04
  105. #define    MQ_WINDOW    0x00
  106. #define    MQ_MODE        0x08
  107. #define    MQ_ECHO        0x10
  108. #define    MQ_WHERE(m)    (m & 0x18)    /* get where field */
  109. #define    MQ_QUALS(m)    (m & 0x07)    /* get qualifier field */
  110.  
  111. /*
  112.  * Intuition menu interface.  Each set of menu items kept in a table of
  113.  * MenuBinding structures, which is in turn kept in a table of MenuInfo
  114.  * structures. These tables are indexed via the menu and item numbers to find
  115.  * the internal extended name of the function associated with a certain item.
  116.  */
  117. #define    MN_OFFSET    ' '    /* menu char - ' ' = real code */
  118. struct MenuBinding {
  119.     char           *Command;
  120.     int             (*Function) ();
  121. };
  122.  
  123. struct MenuInfo {
  124.     char           *Name;    /* name of menu             */
  125.     short           NumItems;    /* # of items             */
  126.     struct MenuBinding *Items;    /* item name, internal binding     */
  127. };
  128.  
  129. #define NITEMS(arr) (sizeof(arr) / (sizeof(arr[0])))
  130.  
  131. /*
  132.  * Return the width and height of the default font for a window.
  133.  */
  134.  
  135. #define    FontWidth(w) (w)->RPort->TxWidth
  136. #define    FontHeight(w) (w)->RPort->TxHeight
  137.